﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TPDiseño.Interfaces
{
    public partial class EmitirOrden2 : Form
    {
        public List<Clases_de_Entidad.Evaluacion> ev_coleccion;
        public string nom;
        public string emp;

        public EmitirOrden2()
        {
            InitializeComponent();
        }

        private void EmitirOrden2_Load(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Maximized;
            label_Cod.Text = nom;
            label_Emp.Text = emp;

            //Agrega el seleccionar todo/quitar todo
            // customize dataviewgrid, add checkbox column
            DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn();
            checkboxColumn.Width = 30;
            checkboxColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DataGridView2.Columns.Insert(0, checkboxColumn);

            // add checkbox header
            Rectangle rect = DataGridView2.GetCellDisplayRectangle(0, -1, true);
            // set checkbox header to center of header cell. +1 pixel to position correctly.
            rect.X = rect.Location.X + (rect.Width / 4);

            CheckBox checkboxHeader = new CheckBox();
            checkboxHeader.Name = "checkboxHeader";
            checkboxHeader.Size = new Size(18, 18);
            checkboxHeader.Location = rect.Location;
            checkboxHeader.CheckedChanged += new EventHandler(checkboxHeader_CheckedChanged);

            DataGridView2.Controls.Add(checkboxHeader);
            //

            //Clases_de_Entidad.Evaluacion eval = new Clases_de_Entidad.Evaluacion();
           
            int fila = 0;
            //llena la grilla
            foreach (Clases_de_Entidad.Evaluacion ev in ev_coleccion)
            {
                DataGridView2.Rows.Add();
                DataGridView2[1, fila].Value = ev._fecha_inicio;
                DataGridView2[2, fila].Value = ev._fecha_fin;
                DataGridView2[3, fila].Value = ev._cod_evaluacion; //columna oculta para determinar seleccionadas
                fila++;

            }
            Cursor.Current = Cursors.Default; //cursor normal
        }

        private void Button_Cancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void checkboxHeader_CheckedChanged(object sender, EventArgs e)
        {
            for (int i = 0; i < DataGridView2.RowCount; i++)
            {
                DataGridView2[0, i].Value = ((CheckBox)DataGridView2.Controls.Find("checkboxHeader", true)[0]).Checked;
            }
            DataGridView2.EndEdit();
        }

        private void Button_Aceptar_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor; //cursor de espera

            //Agrega a ev_selec todas las evaluaciones seleccionadas
            DataGridViewCheckBoxCell valor = new DataGridViewCheckBoxCell();
            string val;
            int cuenta_ev = 0;
            List<Clases_de_Entidad.Evaluacion> ev_selec = new List<Clases_de_Entidad.Evaluacion>();
            foreach (DataGridViewRow fila in DataGridView2.Rows)
            {
                if (fila.Cells[0].Value == null)
                {
                    val = "False";
                    cuenta_ev = cuenta_ev + 1;
                }
                else
                {
                    val = fila.Cells[0].Value.ToString();
                    if (val == "True") //si la evaluacion esta seleccionada
                    {
                        foreach (Clases_de_Entidad.Evaluacion ev in ev_coleccion)
                        {
                            if (fila.Cells[3].Value.ToString() == ev._cod_evaluacion.ToString())
                            {
                                ev_selec.Add(ev);
                            }
                        }
                    }
                    else
                    {
                        cuenta_ev = cuenta_ev + 1;
                    }
                }
            }
            //
            if (cuenta_ev == DataGridView2.RowCount)
            {
                MessageBox.Show("Debe seleccionar al menos una evaluación", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                //llama a emitirOrdenmerito del gestor evaluacion
                Clases_de_Control.Gestor_Evaluacion ge = new Clases_de_Control.Gestor_Evaluacion();
                ge.emitirOrdenMerito(ev_selec, nom, emp);

                Cursor.Current = Cursors.Default; //cursor normal

                this.Close();
            }

        }

       
    }
}
